SuperPNG - by fnord <www.fnordware.com>
Release Notes

v1.0b - The Big Beta
31 May 2002


Contents
	About SuperPNG
	Installation
	Instructions
	Mundane Details
	About PNG
	Issues
	Bugs
	Licensing
	Credits
	Thanks
	History




== About SuperPNG ==

It's Super, it's PNG.  It's SuperPNG.

While Adobe supports PNG in virtually all of its programs (via a Photoshop plug-in), their support is rather limited.

SuperPNG picks up the slack, supporting the majority of PNG features including 16-bit color, variable amounts of compression, embedded color space information, and other meta data.

SuperPNG is also faster than Adobe's plug-in and writes smaller files.






== Installation ==

Disable or delete the regular PNG plug-in and use SuperPNG in its place.  Generally, using SuperPNG and the included Adobe plug-in simultaneously is a bad idea.

Find the Adobe plug-in "Photoshop:Plug-Ins:Adobe Photoshop Only:File Formats" or thereabouts.


Several versions are provide for Mac users.  Use the one that corresponds to your application:

Hybrid - Contains both Classic and Carbon versions in a Mac OS package.
		 Should work in all versions of Photoshop.  If you have trouble,
		 use the Classic version.

Carbon - Just Carbon.  After Effects 5.5 likes this one.

Classic - Just Classic.  After Effects 5.0.






== Instructions ==

Just pick SuperPNG as the file format you wish to use when saving a file and then save!  SuperPNG saves 100% standards-compliant PNG files.

SuperPNG also reads PNGs.  This is of particular interest to Windows users because the current versions of Photoshop and After Effects on that platform can't read 16-bit PNGs like the Mac versions can.  SuperPNG corrects that problem.






== Mundane Details ==

When saving (or clicking the Options button in After Effects), a dialog box is presented.  The radio buttons across the top let you set the level of compression.  PNG compression is always lossless!  But if you want to spend more time saving, you might get a smaller file.

The second option (from the left) is particularly well-suited to saving photographic images quickly with good compression.

Photoshop will treat an Alpha channel as a transparency map.  If you prefer the old-school method of leaving it in the Channels pallette, use the "Alpha Matte" version of the plug-in.

Saving an interlaced PNG will take longer, use more memory, and result in less compression.  But if you're going to the web, you might want to do it.  PNG's interlacing is much better than GIF's.

Saving Meta Data will take a little longer and make a slightly larger file, but not by much.  Copyright and URL settings are maintained in Photoshop's "File Info".  Time and other meta data aren't available in the Photoshop interface, but they still get saved.

Embed an ICC profile by checking the box in the Save As... dialog.  Photoshop automatically handles ICC profile discrepancies.

If the file has no ICC profile but has a different gamma setting from your system, you will be asked if you want to make the adjustment.  Usually you'll want to do it.

After Effects has a bug where it always reports an alpha, even if the user specifies RGB only for output.  This causes the files to have an extra opaque alpha channel.  SuperPNG provides an extra check box in AE called "No Alpha" that will force strict RGB.  The extra alpha is generally not a problem because it is accurate and compresses very small.  When in doubt, leave this option unchecked.  And be careful not to leave it on when you really want to save the alpha channel in AE.

For the ultra-geeky (mostly Adobe plug-in developers): you can write PNGI resources by Option-Shift-Clicking on the frog banner.  You can use these with the Adobe Dialog Manager (ADM) in recent versions of Adobe apps.  One major advantage is that the PNG transparency is fully utilized.  In fact, all the tool icons in Photoshop 7 and Illustrator 10 are PNG resources and can even be read by SuperPNG if you use ResEdit to copy them to a PNG file.







== About PNG ==

What can I say?  PNG rocks.

Honestly, I can't think of any reason not to use PNG as your standard image format except that it has a funny name and may be a little unfamiliar.  But all the main image editors love it, so why not you?

Here are just some of PNG's advantages:

1) Support for 16-bit RGB+Alpha images. Lower color spaces also supported.

2) Very tight, lossless compression.

3) Ubiquitous. Even if you've never heard of PNG, chances are you have programs that can read PNG files. Virtually every commercial image editor supports PNG, and so does Apple's QuickTime. Most modern web browsers support embedded PNG files, some even support alpha transparency.

3a) User Friendly. Even though some programs such as Adobe Photoshop and After Effects can't natively write 16-bit PNG files, they can read them just fine. Even 8-bit RGB programs can usually read 16-bit PNGs.  So feel free to send 16-bit PNGs to anyone, even if they don't have SuperPNG.

4) Public, open source format.  Free of patents.

5) Fun to say.


Everything you ever wanted to know about PNG is available here:

http://www.libpng.org/






== Why SuperPNG? ==

The PNG format is much deeper than Photoshop's built-in plug-in supports.  In SuperPNG I have tried to support every PNG feature that had a logical Photoshop counterpart.

Of course, I originally wrote it so I could save 16-bit PNGs in After Effects.  At that time I wrote:


The thing about rendering is that it can take a long time.  So when After Effects spends all night rendering a project, you want it to save your images in a lossless format with transparency so that all of those rendered pixels are preserved.  After Effects currently ships a couple options for doing this with 16-bit projects, but these formats take up a lot of space.  PNG is ideal because it supports 16-bit and uses some bad-ass lossless compression.  PNG is widespread but 16-bit writers aren't for some reason.  Hence SuperPNG.

If you don't know why one would want to use 16-bit color, then you probably don't need to.  But 16-bit color lets you make color corrections and perform other image operations without degrading the color space so much.  Try this: start with a horizontal gradient from white to black.  Use Levels... to bring the white and black output levels to middle gray so you can barely even see any color change across the image.  Then apply Levels again, this time using the histogram to re-set the image so that black and white are black and white again.  If you do it right to an 8-bit image, you will see banding from the lost pixel data.  On a 16-bit image you won't.








== Issues ==

This is beta software, so be careful.  Don't use it on production machines,  we're not responsible for lost data, blah blah blah.

That said, I have yet to hear a bug reported on any version (a record that I've surely just jinxed).

The Windows version may be a little slow.  This is mainly because Microsoft wants to charge me several hundred dollars for the "professional" version of Visual C++ to compile faster code.  Sorry, but not for a free plug-in folks.  Anyone want to give me a copy?








== Bugs ==

If SuperPNG crashes on you, I'd be interested to know what you were doing.  If I can duplicate the problem, I'll probably fix it quick.

Send bug reports to <SuperPNG@fnordware.com>






== Licensing ==

SuperPNG is freeware.  Send it out far and wide.

But if you're going to put it on a CD or something, it wouldn't kill you to ask first.  And don't try to sell it.

The libpng and zlib libraries used here are also free and have one of those open source licenses.  Basically you can use them for whatever evil purpose you want and don't even have to give them credit.  Take that, capitalism!






== Credits ==

Written by Brendan Bolles <brendan@fnordware.com>.

Uses libpng 1.2.1 which itself uses zlib 1.1.3.
	http://www.libpng.org/pub/png/libpng.html
	http://www.zlib.org/


libpng was written by Guy Eric Schalnat, Andreas Dilger, and Glenn Randers-Pehrson among others.

zlib was written by Jean-Loup Gailly (compression) and Mark Adler (decompression).





== Thanks ==

Thanks to Apple for making awesome computers.

Thanks to Adobe for making great software to run on them.  Especially Bruce Bullis and Thomas Ruark who help me out whenever I make a dumb mistake.  And the whole After Effects team for being so damn cool.  And thanks to Kevin Hogan for letting me peek in John Warnock's office that one time, even though he never responds to my emails anymore.

Thanks to Greg Roelofs for writing the book on PNG (literally) and answering my stupid questions.  He also maintains the PNG web site.

Thanks to John Knoll and Thomas Knoll for getting this whole Photoshop thing started.

Thanks to Bill Atkinson for MacPaint & everything.  I was at a party with Bill recently but I didn't think it was really him (and he looked different without glasses) so I didn't say hello.  Dumb.

Thanks to Metrowerks for making a great Mac development environment.

Thanks to Impudent1 for the studly Windows beta testing.

Thanks to Jim Thill and everyone at Toolfarm.com for getting me into the computer graphics biz.

And thanks to the global After Effects community, for whom I wrote this.






== History ==

25 Jun 2002 - 1.0

Now supports just about every PNG feature I could think of, providing handy dialog boxes where appropriate.

Here's a list of the new stuff:

Dialog box to set compression level when saving.

Can also save out Interlaced PNGs and Meta Data.
	Meta Data includes sRGB, gAMA, cHRM, tIME, iCCP, tEXT, pHYs chunks.
	In other words, the following can be embedded in the file:
		-Basic color space info
		-Detailed color space info via an ICC profile
		-Time the file was saved
		-Resolution (dpi)
		-Copyright and URL fields from File Info

Reads all known PNG formats and bit depths.
	Write formats supported by Photoshop: 1-bit, Palette, 8-bit and 16-bit.
	Indexed colored PNGs come in with palettes intact.
	One completely transparent palette color gets transferred.
	More complex translucent PNG palettes cause the image to come in as RGBA.
		This way no data is lost.
		Photoshop only supports GIF-style palettes (1 transparent color).
		You can recover the palette by switching to Index Color mode.

Gamma correction supported (with user permission).
	Photoshop automatically reads and handles ICC profiles.

Photoshop transparency supported.
	Alt plug-in for using Alpha as a standard channel.

Settings are stored correctly in After Effects.

Photoshop scripting also supported if anybody cares.

I'm sure nobody cares that you can save a PNG resource.

Did I mention a talking frog?
	


4 Mar 2002 - v0.8b

New Carbonized version to run on both OS 9 (Classic) and OS X.
Also runs on Windows now.
PNG reading added as well.
Probably a little faster thanks to a few other optimizations.


5 Feb 2002 - v0.5b

Initial release - public beta.
It works!  Woo hoo!  Sent out to various friends who I knew could use it.







== Fun Facts ==

The SuperPNG mascot is Mikey the frog.  Mikey and I shared a bathroom up at Walton's Grizzly Lodge Summer Camp <http://www.grizzlylodge.com> during the Summer of 2001.  He occasionally took off (presumably to eat) but always returned to perch on my sink.  He eventually let me pet him and showed no fear when I brushed my teeth.

My cat's breath smells like cat food.

God bless those Pagans.
